<?

class Zend_View_Helper_ShowProcessiPersona extends Zend_View_Helper_Abstract {

    public function showProcessiPersona($id_persona) {
        $table = '';

        $auth = Zend_Auth::getInstance();
        if ($auth->hasIdentity()) {

            require_once APPLICATION_PATH . '/models/Db/Flusso_db.php';
            require_once APPLICATION_PATH . '/models/Db/Utility.php';
            require_once APPLICATION_PATH . '/models/Db/Lib_db.php';

            $flusso_obj = new Flusso_db();
            $util_obj = new Utility();
            $lib_obj = new Lib_db();

            $processi = $flusso_obj->getProcessiByIdPersona($id_persona);
            $processi_close = $flusso_obj->showProcess($processi);


            /*
             * inizializzo i due array che contengono
             * i processi chiusi e i processi aperti
             *  
             */
            $processi_chiusi = array();
            $processi_incorso = array();

            foreach ($processi_close as $key => $value) {

                $id_processo_sanzionatorio = $key;
                $close = $value['close'];

                if ($close != 0) {
                    $processi_chiusi[$id_processo_sanzionatorio]['id_conclusione'] = $close;
                } else {
                    $processi_incorso[]['id_processo_sanzionatorio'] = $id_processo_sanzionatorio;
                }
            }

            $table .= '<table id="risultati-processi">' .
                    '<tr>' .
                    '<th>Tipo</th>' .
                    '<th>Numero verbale</th>' .
                    '<th>Data accertamento</th>' .
                    '<th>Numero contestazione</th>' .
                    '<th>Data contestazione</th>' .
                    '<th>Fase in corso</th>' .
                    '</tr>';

            foreach ($processi_incorso as $processo) {
                if ($processo) {
                    $processo = $flusso_obj->getInfoProcesso(intval($processo['id_processo_sanzionatorio']));
                    $tipo_processo = $lib_obj->getTipoProcesso($processo['id_lib_tipo_processo_sanzionatorio']);
                    $accertamento = $flusso_obj->getDatiAccertmento($processo['id_processo_sanzionatorio']);
                    $contestazione = $flusso_obj->getDatiVerbaleDiContestazione($processo['id_processo_sanzionatorio']);


                    $tipo_processo = $tipo_processo['descrizione'];
                    $tipo_responsabile = $processo['tipo_responsabile'];
                    $data_inizio = $processo['data_inizio'];
                    //$data_inizio = Utility::formattaData($data_inizio);
                    //print_r($processo);
                    //$table.='<a href="' . $this->view->url(array('controller' => 'Gestione', 'action' => 'get-flusso', 'id' => intval($processo['id_processo_sanzionatorio'])), 'gestione', TRUE) . '">' . $tipo_processo . ' - ' . $tipo_responsabile . ' - ' . $data_inizio . '</a><br />';
                    //$table.='<a href="'.$this->view->url(array('controller'=>'Gestione','action'=>'get-flusso', 'id'=>intval($processo['id_processo_sanzionatorio'])),'gestione', TRUE).'">'.$processo['id_processo_sanzionatorio'].'</a><br />';

                    if ($accertamento) {
                        $data_ora = explode(' ', $accertamento['data_ora']);
                        $data_accertamento = Utility::formattaData($data_ora[0]);
                    } else {
                        $data_accertamento = '';
                    }
                    if ($accertamento['numero_verbale']) {
                        $numero_verbale = $accertamento['numero_verbale'];
                    } else {
                        $numero_verbale = '';
                    }
                    if ($contestazione['numero_contestazione']) {
                        $numero_contestazione = $contestazione['numero_contestazione'];
                    } else {
                        $numero_contestazione = '';
                    }
                    if ($contestazione['data']) {
                        $data_contestazione = Utility::formattaData($contestazione['data']);
                    } else {
                        $data_contestazione = '';
                    }

                    $id_fase_attuale = $processo['id_fase_attuale'];
                    $nome_fase = $flusso_obj->getFaseDaId($id_fase_attuale);
                    $nome_fase = $nome_fase['descrizione'];

                    $table.=
                            '<tr>' .
                            '<td>' . '<a href="' . $this->view->url(array('controller' => 'Gestione', 'action' => 'get-flusso', 'id' => intval($processo['id_processo_sanzionatorio'])), 'gestione', TRUE) . '">' . $tipo_processo . '</a></td>' .
                            '<td>' . $numero_verbale . '</td>' .
                            '<td>' . $data_accertamento . '</td>' .
                            '<td>' . $numero_contestazione . '</td>' .
                            '<td>' . $data_contestazione . '</td>' .
                            '<td>' . $nome_fase . '</td>' .
                            '</tr>'
                    ;
                }
            }
            $table.='</table>';

            //$table.='<p class="no-mar-bot">Storico processi sanzionatori conclusi</p>';
            $table2 = '<p class="no-mar-bot">Storico processi sanzionatori conclusi</p>';
            $table2.='<table id="risultati-processi-conclusi">' .
                    '<tbody>' .
                    '<tr>' .
                    '<th>Tipo</th>' .
                    '<th>Numero verbale</th>' .
                    '<th>Data accertamento</th>' .
                    '<th>Numero contestazione</th>' .
                    '<!--<th>Data contestazione</th>-->' .
                    '<th>Data Concluisone</th>' .
                    '<th>Motivo</th>' .
                    '</tr>';
            foreach ($processi_chiusi as $key => $value) {
                if ($key) {
                    $processo = $flusso_obj->getInfoProcesso(intval($key));
                    $processo = $flusso_obj->getInfoProcesso(intval($processo['id_processo_sanzionatorio']));
                    $tipo_processo = $lib_obj->getTipoProcesso($processo['id_lib_tipo_processo_sanzionatorio']);
                    $accertamento = $flusso_obj->getDatiAccertmento($processo['id_processo_sanzionatorio']);
                    $contestazione = $flusso_obj->getDatiVerbaleDiContestazione($processo['id_processo_sanzionatorio']);
                    $conclusione = $flusso_obj->getDatiConclusione($value['id_conclusione']);

                    $tipo_processo = $tipo_processo['descrizione'];
                    $tipo_responsabile = $processo['tipo_responsabile'];
                    $data_inizio = $processo['data_inizio'];

                    //                  $table.='<a href="' . $this->view->url(array('controller' => 'Gestione', 'action' => 'get-flusso', 'id' => intval($key)), 'gestione', TRUE) . '">' . $tipo_processo . ' - ' . $tipo_responsabile . ' - ' . $value['id_conclusione'] . '</a><br />';
//                    $table.='<p class="no-mar-bot">Storico processi sanzionatori conclusi</p>';
//                    $table.='<a href="'.$this->view->url(array('controller'=>'Gestione','action'=>'get-flusso', 'id'=>intval($key)),'gestione', TRUE).'">'.$key.' - '.$value['id_conclusione'].'</a><br />';

                    if ($accertamento) {
                        $data_ora = explode(' ', $accertamento['data_ora']);
                        $data_accertamento = Utility::formattaData($data_ora[0]);
                    } else {
                        $data_accertamento = '';
                    }
                    if ($accertamento['numero_verbale']) {
                        $numero_verbale = $accertamento['numero_verbale'];
                    } else {
                        $numero_verbale = '';
                    }
                    if ($contestazione['numero_contestazione']) {
                        $numero_contestazione = $contestazione['numero_contestazione'];
                    } else {
                        $numero_contestazione = '';
                    }
                    if ($contestazione['data']) {
                        $data_contestazione = Utility::formattaData($contestazione['data']);
                    } else {
                        $data_contestazione = '';
                    }
                    if ($conclusione['data']) {
                        $data_conclusione = $conclusione['data'];
                    } else {
                        $data_conclusione = '';
                    }
                    if ($conclusione['motivo']) {
                        $motivo_conclusione = $conclusione['motivo'];
                    } else {
                        $motivo_conclusione = '';
                    }

                    $table2.='<tr>' .
                            //'<a href="'.$this->view->url(array('controller'=>'Gestione','action'=>'get-flusso', 'id'=>intval($processo['id_processo_sanzionatorio'])),'gestione', TRUE).'">'.
                            '<td>' . '<a href="' . $this->view->url(array('controller' => 'Gestione', 'action' => 'get-flusso', 'id' => intval($processo['id_processo_sanzionatorio'])), 'gestione', TRUE) . '">' . $tipo_processo . '</a></td>' .
                            '<td>' . $numero_verbale . '</td>' .
                            '<td>' . $data_accertamento . '</td>' .
                            '<td>' . $numero_contestazione . '</td>' .
                            '<td>' . $data_contestazione . '</td>' .
                            '<!--<td>' . $data_conclusione . '</td>-->' .
                            '<td>' . $motivo_conclusione . '</td>' .
                            //'</a>'.
                            '</tr>';
                }
            }
            $table2.='</tbody></table>';

//            $table.='</tbody></table>';
            //return $persone;

            return $table.$table2;
        }

        return $table;
    }

}